
1차원 배열
배열 : 배열은 같은 데이터 타입의 데이터(Data)를 여러 개 저장할 수 있는 저장공간이다.
- 배열 또한 메모리를 생성할 때 new 키워드를 사용한다.
- 이를 통해 배열은 stack이 아닌 heap 영역에 저장된다는 사실을 짐작할 수 있다.
- 배열의 이름은 주소값을 저장하는 참조변수다. 즉, “heap 영역에 저장된” 배열의 주소값이 저장된다. 우리는 이 주소값을 통해 배열에 접근한다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
// 1. 주소를 기억할 변수
// 2. 메모리 할당
int[] 아파트 = new int[10];
// int[0] = ?
// int[1] = ?
// ...
for(int i = 0; i<10; i++)
{
Console.WriteLine("아파트["+i+"] = " + 아파트[i]);
}
}
}
결과
아파트[0] = 0
아파트[1] = 0 아파트[2] = 0 아파트[3] = 0 아파트[4] = 0 아파트[5] = 0 아파트[6] = 0 아파트[7] = 0 아파트[8] = 0 아파트[9] = 0
자동으로 배열의 값이 0으로 초기화 된다.
배열에 값을 넣는 법
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = 0; i<10; i++)
{
Console.WriteLine("아파트["+i+"] = " + 아파트[i]);
}
}
}
결과
아파트[0] = 0
아파트[1] = 1 아파트[2] = 2 아파트[3] = 3 아파트[4] = 4 아파트[5] = 5 아파트[6] = 6 아파트[7] = 7 아파트[8] = 8 아파트[9] = 9
배열의 참조
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] 메모1 = 아파트; // 참조값 값복사
int[] 메모2 = 메모1; // 참조값 값복사
for (int i = 0; i<10; i++)
{
Console.WriteLine("메모1["+i+"] = " + 메모1[i]);
}
}
}
결과
메모1[0] = 0
메모1[1] = 1 메모1[2] = 2 메모1[3] = 3 메모1[4] = 4 메모1[5] = 5 메모1[6] = 6 메모1[7] = 7 메모1[8] = 8 메모1[9] = 9
메모리를 할당하는 다른 방법
int[] 아파트 = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] 아파트 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 11개의 공간만 할당